#include "BulletSoftBody/btSoftBody.h"
#ifdef __cplusplus
extern "C" {
#endif
btSoftBodyWorldInfo* bullet_NewbtSoftBodyWorldInfo(){
	btSoftBodyWorldInfo* wrap_out = new btSoftBodyWorldInfo();
	return wrap_out;
}

double bullet_btSoftBodyWorldInfo_GetFieldOfAir_density(btSoftBodyWorldInfo* c_this){
	return (double)(c_this->air_density);
}

btVector3* bullet_btSoftBodyWorldInfo_GetFieldOfM_gravity(btSoftBodyWorldInfo* c_this){
	return (btVector3*)(&c_this->m_gravity);
}

double bullet_btSoftBodyWorldInfo_GetFieldOfM_maxDisplacement(btSoftBodyWorldInfo* c_this){
	return (double)(c_this->m_maxDisplacement);
}

double bullet_btSoftBodyWorldInfo_GetFieldOfWater_density(btSoftBodyWorldInfo* c_this){
	return (double)(c_this->water_density);
}

btVector3* bullet_btSoftBodyWorldInfo_GetFieldOfWater_normal(btSoftBodyWorldInfo* c_this){
	return (btVector3*)(&c_this->water_normal);
}

double bullet_btSoftBodyWorldInfo_GetFieldOfWater_offset(btSoftBodyWorldInfo* c_this){
	return (double)(c_this->water_offset);
}

btSoftBody::sRayCast* bullet_NewbtSoftBodysRayCast(){
	btSoftBody::sRayCast* wrap_out = new btSoftBody::sRayCast();
	return wrap_out;
}

btSoftBody::eFeature::_ bullet_btSoftBodysRayCast_GetFieldOfFeature(btSoftBody::sRayCast* c_this){
	return (btSoftBody::eFeature::_)(c_this->feature);
}

double bullet_btSoftBodysRayCast_GetFieldOfFraction(btSoftBody::sRayCast* c_this){
	return (double)(c_this->fraction);
}

int bullet_btSoftBodysRayCast_GetFieldOfIndex(btSoftBody::sRayCast* c_this){
	return (int)(c_this->index);
}

btSoftBody::sMedium* bullet_NewbtSoftBodysMedium(){
	btSoftBody::sMedium* wrap_out = new btSoftBody::sMedium();
	return wrap_out;
}

double bullet_btSoftBodysMedium_GetFieldOfM_density(btSoftBody::sMedium* c_this){
	return (double)(c_this->m_density);
}

double bullet_btSoftBodysMedium_GetFieldOfM_pressure(btSoftBody::sMedium* c_this){
	return (double)(c_this->m_pressure);
}

btVector3* bullet_btSoftBodysMedium_GetFieldOfM_velocity(btSoftBody::sMedium* c_this){
	return (btVector3*)(&c_this->m_velocity);
}

btSoftBody::sCti* bullet_NewbtSoftBodysCti(){
	btSoftBody::sCti* wrap_out = new btSoftBody::sCti();
	return wrap_out;
}

btVector3* bullet_btSoftBodysCti_GetFieldOfM_bary(btSoftBody::sCti* c_this){
	return (btVector3*)(&c_this->m_bary);
}

btCollisionObject** bullet_btSoftBodysCti_GetFieldOfM_colObj(btSoftBody::sCti* c_this){
	return (btCollisionObject**)(&c_this->m_colObj);
}

btVector3* bullet_btSoftBodysCti_GetFieldOfM_impulse(btSoftBody::sCti* c_this){
	return (btVector3*)(&c_this->m_impulse);
}

btVector3* bullet_btSoftBodysCti_GetFieldOfM_normal(btSoftBody::sCti* c_this){
	return (btVector3*)(&c_this->m_normal);
}

double bullet_btSoftBodysCti_GetFieldOfM_offset(btSoftBody::sCti* c_this){
	return (double)(c_this->m_offset);
}

btSoftBody::fMaterial* bullet_NewbtSoftBodyfMaterial(){
	btSoftBody::fMaterial* wrap_out = new btSoftBody::fMaterial();
	return wrap_out;
}

btSoftBody::fCollision* bullet_NewbtSoftBodyfCollision(){
	btSoftBody::fCollision* wrap_out = new btSoftBody::fCollision();
	return wrap_out;
}

btSoftBody::eVSolver* bullet_NewbtSoftBodyeVSolver(){
	btSoftBody::eVSolver* wrap_out = new btSoftBody::eVSolver();
	return wrap_out;
}

btSoftBody::eSolverPresets* bullet_NewbtSoftBodyeSolverPresets(){
	btSoftBody::eSolverPresets* wrap_out = new btSoftBody::eSolverPresets();
	return wrap_out;
}

btSoftBody::ePSolver* bullet_NewbtSoftBodyePSolver(){
	btSoftBody::ePSolver* wrap_out = new btSoftBody::ePSolver();
	return wrap_out;
}

btSoftBody::eFeature* bullet_NewbtSoftBodyeFeature(){
	btSoftBody::eFeature* wrap_out = new btSoftBody::eFeature();
	return wrap_out;
}

btSoftBody::eAeroModel* bullet_NewbtSoftBodyeAeroModel(){
	btSoftBody::eAeroModel* wrap_out = new btSoftBody::eAeroModel();
	return wrap_out;
}

btSoftBody::TetraScratch* bullet_NewbtSoftBodyTetraScratch(){
	btSoftBody::TetraScratch* wrap_out = new btSoftBody::TetraScratch();
	return wrap_out;
}

btMatrix3x3* bullet_btSoftBodyTetraScratch_GetFieldOfM_cofF(btSoftBody::TetraScratch* c_this){
	return (btMatrix3x3*)(&c_this->m_cofF);
}

btMatrix3x3* bullet_btSoftBodyTetraScratch_GetFieldOfM_corotation(btSoftBody::TetraScratch* c_this){
	return (btMatrix3x3*)(&c_this->m_corotation);
}

btMatrix3x3* bullet_btSoftBodyTetraScratch_GetFieldOfM_F(btSoftBody::TetraScratch* c_this){
	return (btMatrix3x3*)(&c_this->m_F);
}

double bullet_btSoftBodyTetraScratch_GetFieldOfM_J(btSoftBody::TetraScratch* c_this){
	return (double)(c_this->m_J);
}

double bullet_btSoftBodyTetraScratch_GetFieldOfM_trace(btSoftBody::TetraScratch* c_this){
	return (double)(c_this->m_trace);
}

btSoftBody::Tetra* bullet_NewbtSoftBodyTetra(){
	btSoftBody::Tetra* wrap_out = new btSoftBody::Tetra();
	return wrap_out;
}

btVector3** bullet_btSoftBodyTetra_GetFieldOfM_c0(btSoftBody::Tetra* c_this){
	return (btVector3**)(&c_this->m_c0);
}

double bullet_btSoftBodyTetra_GetFieldOfM_c1(btSoftBody::Tetra* c_this){
	return (double)(c_this->m_c1);
}

double bullet_btSoftBodyTetra_GetFieldOfM_c2(btSoftBody::Tetra* c_this){
	return (double)(c_this->m_c2);
}

btMatrix3x3* bullet_btSoftBodyTetra_GetFieldOfM_Dm_inverse(btSoftBody::Tetra* c_this){
	return (btMatrix3x3*)(&c_this->m_Dm_inverse);
}

double bullet_btSoftBodyTetra_GetFieldOfM_element_measure(btSoftBody::Tetra* c_this){
	return (double)(c_this->m_element_measure);
}

btMatrix3x3* bullet_btSoftBodyTetra_GetFieldOfM_F(btSoftBody::Tetra* c_this){
	return (btMatrix3x3*)(&c_this->m_F);
}

btDbvtNode** bullet_btSoftBodyTetra_GetFieldOfM_leaf(btSoftBody::Tetra* c_this){
	return (btDbvtNode**)(&c_this->m_leaf);
}

btSoftBody::Node*** bullet_btSoftBodyTetra_GetFieldOfM_n(btSoftBody::Tetra* c_this){
	return (btSoftBody::Node***)(&c_this->m_n);
}

btVector4** bullet_btSoftBodyTetra_GetFieldOfM_P_inv(btSoftBody::Tetra* c_this){
	return (btVector4**)(&c_this->m_P_inv);
}

double bullet_btSoftBodyTetra_GetFieldOfM_rv(btSoftBody::Tetra* c_this){
	return (double)(c_this->m_rv);
}

btSoftBody::SolverState* bullet_NewbtSoftBodySolverState(){
	btSoftBody::SolverState* wrap_out = new btSoftBody::SolverState();
	return wrap_out;
}

double bullet_btSoftBodySolverState_GetFieldOfIsdt(btSoftBody::SolverState* c_this){
	return (double)(c_this->isdt);
}

double bullet_btSoftBodySolverState_GetFieldOfRadmrg(btSoftBody::SolverState* c_this){
	return (double)(c_this->radmrg);
}

double bullet_btSoftBodySolverState_GetFieldOfSdt(btSoftBody::SolverState* c_this){
	return (double)(c_this->sdt);
}

double bullet_btSoftBodySolverState_GetFieldOfUpdmrg(btSoftBody::SolverState* c_this){
	return (double)(c_this->updmrg);
}

double bullet_btSoftBodySolverState_GetFieldOfVelmrg(btSoftBody::SolverState* c_this){
	return (double)(c_this->velmrg);
}

btSoftBody::SContact* bullet_NewbtSoftBodySContact(){
	btSoftBody::SContact* wrap_out = new btSoftBody::SContact();
	return wrap_out;
}

double** bullet_btSoftBodySContact_GetFieldOfM_cfm(btSoftBody::SContact* c_this){
	return (double**)(&c_this->m_cfm);
}

btSoftBody::Face** bullet_btSoftBodySContact_GetFieldOfM_face(btSoftBody::SContact* c_this){
	return (btSoftBody::Face**)(&c_this->m_face);
}

double bullet_btSoftBodySContact_GetFieldOfM_friction(btSoftBody::SContact* c_this){
	return (double)(c_this->m_friction);
}

double bullet_btSoftBodySContact_GetFieldOfM_margin(btSoftBody::SContact* c_this){
	return (double)(c_this->m_margin);
}

btSoftBody::Node** bullet_btSoftBodySContact_GetFieldOfM_node(btSoftBody::SContact* c_this){
	return (btSoftBody::Node**)(&c_this->m_node);
}

btVector3* bullet_btSoftBodySContact_GetFieldOfM_normal(btSoftBody::SContact* c_this){
	return (btVector3*)(&c_this->m_normal);
}

btVector3* bullet_btSoftBodySContact_GetFieldOfM_weights(btSoftBody::SContact* c_this){
	return (btVector3*)(&c_this->m_weights);
}

btSoftBody::RenderNode* bullet_NewbtSoftBodyRenderNode(){
	btSoftBody::RenderNode* wrap_out = new btSoftBody::RenderNode();
	return wrap_out;
}

btVector3* bullet_btSoftBodyRenderNode_GetFieldOfM_normal(btSoftBody::RenderNode* c_this){
	return (btVector3*)(&c_this->m_normal);
}

btVector3* bullet_btSoftBodyRenderNode_GetFieldOfM_uv1(btSoftBody::RenderNode* c_this){
	return (btVector3*)(&c_this->m_uv1);
}

btVector3* bullet_btSoftBodyRenderNode_GetFieldOfM_x(btSoftBody::RenderNode* c_this){
	return (btVector3*)(&c_this->m_x);
}

btSoftBody::RenderFace* bullet_NewbtSoftBodyRenderFace(){
	btSoftBody::RenderFace* wrap_out = new btSoftBody::RenderFace();
	return wrap_out;
}

btSoftBody::RenderNode*** bullet_btSoftBodyRenderFace_GetFieldOfM_n(btSoftBody::RenderFace* c_this){
	return (btSoftBody::RenderNode***)(&c_this->m_n);
}

btSoftBody::RayFromToCaster* bullet_NewbtSoftBodyRayFromToCaster(btVector3* rayFrom,btVector3* rayTo,double mxt){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btScalar c_arg_mxt=mxt;
	btSoftBody::RayFromToCaster* wrap_out = new btSoftBody::RayFromToCaster(c_arg_rayFrom,c_arg_rayTo,c_arg_mxt);
	return wrap_out;
}

btSoftBody::Face** bullet_btSoftBodyRayFromToCaster_GetFieldOfM_face(btSoftBody::RayFromToCaster* c_this){
	return (btSoftBody::Face**)(&c_this->m_face);
}

double bullet_btSoftBodyRayFromToCaster_GetFieldOfM_mint(btSoftBody::RayFromToCaster* c_this){
	return (double)(c_this->m_mint);
}

btVector3* bullet_btSoftBodyRayFromToCaster_GetFieldOfM_rayFrom(btSoftBody::RayFromToCaster* c_this){
	return (btVector3*)(&c_this->m_rayFrom);
}

btVector3* bullet_btSoftBodyRayFromToCaster_GetFieldOfM_rayNormalizedDirection(btSoftBody::RayFromToCaster* c_this){
	return (btVector3*)(&c_this->m_rayNormalizedDirection);
}

btVector3* bullet_btSoftBodyRayFromToCaster_GetFieldOfM_rayTo(btSoftBody::RayFromToCaster* c_this){
	return (btVector3*)(&c_this->m_rayTo);
}

int bullet_btSoftBodyRayFromToCaster_GetFieldOfM_tests(btSoftBody::RayFromToCaster* c_this){
	return (int)(c_this->m_tests);
}

void bullet_btSoftBodyRayFromToCaster_Process(btSoftBody::RayFromToCaster* c_this,btDbvtNode* leaf){
	btDbvtNode const * c_arg_leaf=(btDbvtNode const *)(void*)(leaf);
	c_this->Process(c_arg_leaf);
}

double bullet_btSoftBodyRayFromToCaster_rayFromToTriangle(btSoftBody::RayFromToCaster* c_this,btVector3* rayFrom,btVector3* rayTo,btVector3* rayNormalizedDirection,btVector3* a,btVector3* b,btVector3* c,double maxt){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btVector3 const& c_arg_rayNormalizedDirection=(btVector3 const&)(*rayNormalizedDirection);
	btVector3 const& c_arg_a=(btVector3 const&)(*a);
	btVector3 const& c_arg_b=(btVector3 const&)(*b);
	btVector3 const& c_arg_c=(btVector3 const&)(*c);
	btScalar c_arg_maxt=maxt;
	btScalar c_out = c_this->rayFromToTriangle(c_arg_rayFrom,c_arg_rayTo,c_arg_rayNormalizedDirection,c_arg_a,c_arg_b,c_arg_c,c_arg_maxt);
	double wrap_out = (c_out);
	return wrap_out;
}

btSoftBody::RContact* bullet_NewbtSoftBodyRContact(){
	btSoftBody::RContact* wrap_out = new btSoftBody::RContact();
	return wrap_out;
}

btMultiBodyJacobianData* bullet_btSoftBodyRContact_GetFieldOfJacobianData_normal(btSoftBody::RContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_normal);
}

btMultiBodyJacobianData* bullet_btSoftBodyRContact_GetFieldOfJacobianData_t1(btSoftBody::RContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_t1);
}

btMultiBodyJacobianData* bullet_btSoftBodyRContact_GetFieldOfJacobianData_t2(btSoftBody::RContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_t2);
}

btMatrix3x3* bullet_btSoftBodyRContact_GetFieldOfM_c0(btSoftBody::RContact* c_this){
	return (btMatrix3x3*)(&c_this->m_c0);
}

btVector3* bullet_btSoftBodyRContact_GetFieldOfM_c1(btSoftBody::RContact* c_this){
	return (btVector3*)(&c_this->m_c1);
}

double bullet_btSoftBodyRContact_GetFieldOfM_c2(btSoftBody::RContact* c_this){
	return (double)(c_this->m_c2);
}

double bullet_btSoftBodyRContact_GetFieldOfM_c3(btSoftBody::RContact* c_this){
	return (double)(c_this->m_c3);
}

double bullet_btSoftBodyRContact_GetFieldOfM_c4(btSoftBody::RContact* c_this){
	return (double)(c_this->m_c4);
}

btSoftBody::sCti* bullet_btSoftBodyRContact_GetFieldOfM_cti(btSoftBody::RContact* c_this){
	return (btSoftBody::sCti*)(&c_this->m_cti);
}

btSoftBody::Node** bullet_btSoftBodyRContact_GetFieldOfM_node(btSoftBody::RContact* c_this){
	return (btSoftBody::Node**)(&c_this->m_node);
}

btVector3* bullet_btSoftBodyRContact_GetFieldOfT1(btSoftBody::RContact* c_this){
	return (btVector3*)(&c_this->t1);
}

btVector3* bullet_btSoftBodyRContact_GetFieldOfT2(btSoftBody::RContact* c_this){
	return (btVector3*)(&c_this->t2);
}

btSoftBody::Pose* bullet_NewbtSoftBodyPose(){
	btSoftBody::Pose* wrap_out = new btSoftBody::Pose();
	return wrap_out;
}

btMatrix3x3* bullet_btSoftBodyPose_GetFieldOfM_aqq(btSoftBody::Pose* c_this){
	return (btMatrix3x3*)(&c_this->m_aqq);
}

bool bullet_btSoftBodyPose_GetFieldOfM_bframe(btSoftBody::Pose* c_this){
	return (bool)(c_this->m_bframe);
}

bool bullet_btSoftBodyPose_GetFieldOfM_bvolume(btSoftBody::Pose* c_this){
	return (bool)(c_this->m_bvolume);
}

btVector3* bullet_btSoftBodyPose_GetFieldOfM_com(btSoftBody::Pose* c_this){
	return (btVector3*)(&c_this->m_com);
}

btMatrix3x3* bullet_btSoftBodyPose_GetFieldOfM_rot(btSoftBody::Pose* c_this){
	return (btMatrix3x3*)(&c_this->m_rot);
}

btMatrix3x3* bullet_btSoftBodyPose_GetFieldOfM_scl(btSoftBody::Pose* c_this){
	return (btMatrix3x3*)(&c_this->m_scl);
}

double bullet_btSoftBodyPose_GetFieldOfM_volume(btSoftBody::Pose* c_this){
	return (double)(c_this->m_volume);
}

btSoftBody::Note* bullet_NewbtSoftBodyNote(){
	btSoftBody::Note* wrap_out = new btSoftBody::Note();
	return wrap_out;
}

double** bullet_btSoftBodyNote_GetFieldOfM_coords(btSoftBody::Note* c_this){
	return (double**)(&c_this->m_coords);
}

btSoftBody::Node*** bullet_btSoftBodyNote_GetFieldOfM_nodes(btSoftBody::Note* c_this){
	return (btSoftBody::Node***)(&c_this->m_nodes);
}

btVector3* bullet_btSoftBodyNote_GetFieldOfM_offset(btSoftBody::Note* c_this){
	return (btVector3*)(&c_this->m_offset);
}

int bullet_btSoftBodyNote_GetFieldOfM_rank(btSoftBody::Note* c_this){
	return (int)(c_this->m_rank);
}

char** bullet_btSoftBodyNote_GetFieldOfM_text(btSoftBody::Note* c_this){
	return (char**)(&c_this->m_text);
}

btSoftBody::Node* bullet_NewbtSoftBodyNode(){
	btSoftBody::Node* wrap_out = new btSoftBody::Node();
	return wrap_out;
}

int bullet_btSoftBodyNode_GetFieldOfIndex(btSoftBody::Node* c_this){
	return (int)(c_this->index);
}

double bullet_btSoftBodyNode_GetFieldOfM_area(btSoftBody::Node* c_this){
	return (double)(c_this->m_area);
}

int bullet_btSoftBodyNode_GetFieldOfM_battach(btSoftBody::Node* c_this){
	return (int)(c_this->m_battach);
}

int bullet_btSoftBodyNode_GetFieldOfM_constrained(btSoftBody::Node* c_this){
	return (int)(c_this->m_constrained);
}

btMatrix3x3* bullet_btSoftBodyNode_GetFieldOfM_effectiveMass(btSoftBody::Node* c_this){
	return (btMatrix3x3*)(&c_this->m_effectiveMass);
}

btMatrix3x3* bullet_btSoftBodyNode_GetFieldOfM_effectiveMass_inv(btSoftBody::Node* c_this){
	return (btMatrix3x3*)(&c_this->m_effectiveMass_inv);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_f(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_f);
}

double bullet_btSoftBodyNode_GetFieldOfM_im(btSoftBody::Node* c_this){
	return (double)(c_this->m_im);
}

btDbvtNode** bullet_btSoftBodyNode_GetFieldOfM_leaf(btSoftBody::Node* c_this){
	return (btDbvtNode**)(&c_this->m_leaf);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_n(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_n);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_q(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_q);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_splitv(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_splitv);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_v(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_v);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_vn(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_vn);
}

btVector3* bullet_btSoftBodyNode_GetFieldOfM_x(btSoftBody::Node* c_this){
	return (btVector3*)(&c_this->m_x);
}

btSoftBody::Material* bullet_NewbtSoftBodyMaterial(){
	btSoftBody::Material* wrap_out = new btSoftBody::Material();
	return wrap_out;
}

int bullet_btSoftBodyMaterial_GetFieldOfM_flags(btSoftBody::Material* c_this){
	return (int)(c_this->m_flags);
}

double bullet_btSoftBodyMaterial_GetFieldOfM_kAST(btSoftBody::Material* c_this){
	return (double)(c_this->m_kAST);
}

double bullet_btSoftBodyMaterial_GetFieldOfM_kLST(btSoftBody::Material* c_this){
	return (double)(c_this->m_kLST);
}

double bullet_btSoftBodyMaterial_GetFieldOfM_kVST(btSoftBody::Material* c_this){
	return (double)(c_this->m_kVST);
}

btSoftBody::Link* bullet_NewbtSoftBodyLink(){
	btSoftBody::Link* wrap_out = new btSoftBody::Link();
	return wrap_out;
}

int bullet_btSoftBodyLink_GetFieldOfM_bbending(btSoftBody::Link* c_this){
	return (int)(c_this->m_bbending);
}

double bullet_btSoftBodyLink_GetFieldOfM_c0(btSoftBody::Link* c_this){
	return (double)(c_this->m_c0);
}

double bullet_btSoftBodyLink_GetFieldOfM_c1(btSoftBody::Link* c_this){
	return (double)(c_this->m_c1);
}

double bullet_btSoftBodyLink_GetFieldOfM_c2(btSoftBody::Link* c_this){
	return (double)(c_this->m_c2);
}

btVector3* bullet_btSoftBodyLink_GetFieldOfM_c3(btSoftBody::Link* c_this){
	return (btVector3*)(&c_this->m_c3);
}

btSoftBody::Node*** bullet_btSoftBodyLink_GetFieldOfM_n(btSoftBody::Link* c_this){
	return (btSoftBody::Node***)(&c_this->m_n);
}

double bullet_btSoftBodyLink_GetFieldOfM_rl(btSoftBody::Link* c_this){
	return (double)(c_this->m_rl);
}

btSoftBody::LJoint* bullet_NewbtSoftBodyLJoint(){
	btSoftBody::LJoint* wrap_out = new btSoftBody::LJoint();
	return wrap_out;
}

btVector3** bullet_btSoftBodyLJoint_GetFieldOfM_rpos(btSoftBody::LJoint* c_this){
	return (btVector3**)(&c_this->m_rpos);
}

btSoftBody::Body** bullet_btSoftBodyJoint_GetFieldOfM_bodies(btSoftBody::Joint* c_this){
	return (btSoftBody::Body**)(&c_this->m_bodies);
}

double bullet_btSoftBodyJoint_GetFieldOfM_cfm(btSoftBody::Joint* c_this){
	return (double)(c_this->m_cfm);
}

bool bullet_btSoftBodyJoint_GetFieldOfM_delete(btSoftBody::Joint* c_this){
	return (bool)(c_this->m_delete);
}

btVector3* bullet_btSoftBodyJoint_GetFieldOfM_drift(btSoftBody::Joint* c_this){
	return (btVector3*)(&c_this->m_drift);
}

double bullet_btSoftBodyJoint_GetFieldOfM_erp(btSoftBody::Joint* c_this){
	return (double)(c_this->m_erp);
}

btMatrix3x3* bullet_btSoftBodyJoint_GetFieldOfM_massmatrix(btSoftBody::Joint* c_this){
	return (btMatrix3x3*)(&c_this->m_massmatrix);
}

btVector3** bullet_btSoftBodyJoint_GetFieldOfM_refs(btSoftBody::Joint* c_this){
	return (btVector3**)(&c_this->m_refs);
}

btVector3* bullet_btSoftBodyJoint_GetFieldOfM_sdrift(btSoftBody::Joint* c_this){
	return (btVector3*)(&c_this->m_sdrift);
}

double bullet_btSoftBodyJoint_GetFieldOfM_split(btSoftBody::Joint* c_this){
	return (double)(c_this->m_split);
}

btSoftBody::Impulse* bullet_NewbtSoftBodyImpulse(){
	btSoftBody::Impulse* wrap_out = new btSoftBody::Impulse();
	return wrap_out;
}

int bullet_btSoftBodyImpulse_GetFieldOfM_asDrift(btSoftBody::Impulse* c_this){
	return (int)(c_this->m_asDrift);
}

int bullet_btSoftBodyImpulse_GetFieldOfM_asVelocity(btSoftBody::Impulse* c_this){
	return (int)(c_this->m_asVelocity);
}

btVector3* bullet_btSoftBodyImpulse_GetFieldOfM_drift(btSoftBody::Impulse* c_this){
	return (btVector3*)(&c_this->m_drift);
}

btVector3* bullet_btSoftBodyImpulse_GetFieldOfM_velocity(btSoftBody::Impulse* c_this){
	return (btVector3*)(&c_this->m_velocity);
}

btSoftBody::Feature* bullet_NewbtSoftBodyFeature(){
	btSoftBody::Feature* wrap_out = new btSoftBody::Feature();
	return wrap_out;
}

btSoftBody::Material** bullet_btSoftBodyFeature_GetFieldOfM_material(btSoftBody::Feature* c_this){
	return (btSoftBody::Material**)(&c_this->m_material);
}

btSoftBody::Face* bullet_NewbtSoftBodyFace(){
	btSoftBody::Face* wrap_out = new btSoftBody::Face();
	return wrap_out;
}

int bullet_btSoftBodyFace_GetFieldOfM_index(btSoftBody::Face* c_this){
	return (int)(c_this->m_index);
}

btDbvtNode** bullet_btSoftBodyFace_GetFieldOfM_leaf(btSoftBody::Face* c_this){
	return (btDbvtNode**)(&c_this->m_leaf);
}

btSoftBody::Node*** bullet_btSoftBodyFace_GetFieldOfM_n(btSoftBody::Face* c_this){
	return (btSoftBody::Node***)(&c_this->m_n);
}

btVector3* bullet_btSoftBodyFace_GetFieldOfM_n0(btSoftBody::Face* c_this){
	return (btVector3*)(&c_this->m_n0);
}

btVector3* bullet_btSoftBodyFace_GetFieldOfM_n1(btSoftBody::Face* c_this){
	return (btVector3*)(&c_this->m_n1);
}

btVector3* bullet_btSoftBodyFace_GetFieldOfM_normal(btSoftBody::Face* c_this){
	return (btVector3*)(&c_this->m_normal);
}

btVector4* bullet_btSoftBodyFace_GetFieldOfM_pcontact(btSoftBody::Face* c_this){
	return (btVector4*)(&c_this->m_pcontact);
}

double bullet_btSoftBodyFace_GetFieldOfM_ra(btSoftBody::Face* c_this){
	return (double)(c_this->m_ra);
}

btVector3* bullet_btSoftBodyFace_GetFieldOfM_vn(btSoftBody::Face* c_this){
	return (btVector3*)(&c_this->m_vn);
}

btSoftBody::Element* bullet_NewbtSoftBodyElement(){
	btSoftBody::Element* wrap_out = new btSoftBody::Element();
	return wrap_out;
}

void** bullet_btSoftBodyElement_GetFieldOfM_tag(btSoftBody::Element* c_this){
	return (void**)(&c_this->m_tag);
}

btSoftBody::DeformableRigidContact* bullet_NewbtSoftBodyDeformableRigidContact(){
	btSoftBody::DeformableRigidContact* wrap_out = new btSoftBody::DeformableRigidContact();
	return wrap_out;
}

btMultiBodyJacobianData* bullet_btSoftBodyDeformableRigidContact_GetFieldOfJacobianData_normal(btSoftBody::DeformableRigidContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_normal);
}

btMultiBodyJacobianData* bullet_btSoftBodyDeformableRigidContact_GetFieldOfJacobianData_t1(btSoftBody::DeformableRigidContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_t1);
}

btMultiBodyJacobianData* bullet_btSoftBodyDeformableRigidContact_GetFieldOfJacobianData_t2(btSoftBody::DeformableRigidContact* c_this){
	return (btMultiBodyJacobianData*)(&c_this->jacobianData_t2);
}

btMatrix3x3* bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c0(btSoftBody::DeformableRigidContact* c_this){
	return (btMatrix3x3*)(&c_this->m_c0);
}

btVector3* bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c1(btSoftBody::DeformableRigidContact* c_this){
	return (btVector3*)(&c_this->m_c1);
}

double bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c2(btSoftBody::DeformableRigidContact* c_this){
	return (double)(c_this->m_c2);
}

double bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c3(btSoftBody::DeformableRigidContact* c_this){
	return (double)(c_this->m_c3);
}

double bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c4(btSoftBody::DeformableRigidContact* c_this){
	return (double)(c_this->m_c4);
}

btMatrix3x3* bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_c5(btSoftBody::DeformableRigidContact* c_this){
	return (btMatrix3x3*)(&c_this->m_c5);
}

btSoftBody::sCti* bullet_btSoftBodyDeformableRigidContact_GetFieldOfM_cti(btSoftBody::DeformableRigidContact* c_this){
	return (btSoftBody::sCti*)(&c_this->m_cti);
}

btVector3* bullet_btSoftBodyDeformableRigidContact_GetFieldOfT1(btSoftBody::DeformableRigidContact* c_this){
	return (btVector3*)(&c_this->t1);
}

btVector3* bullet_btSoftBodyDeformableRigidContact_GetFieldOfT2(btSoftBody::DeformableRigidContact* c_this){
	return (btVector3*)(&c_this->t2);
}

btSoftBody::DeformableNodeRigidContact* bullet_NewbtSoftBodyDeformableNodeRigidContact(){
	btSoftBody::DeformableNodeRigidContact* wrap_out = new btSoftBody::DeformableNodeRigidContact();
	return wrap_out;
}

btSoftBody::Node** bullet_btSoftBodyDeformableNodeRigidContact_GetFieldOfM_node(btSoftBody::DeformableNodeRigidContact* c_this){
	return (btSoftBody::Node**)(&c_this->m_node);
}

btSoftBody::DeformableNodeRigidAnchor* bullet_NewbtSoftBodyDeformableNodeRigidAnchor(){
	btSoftBody::DeformableNodeRigidAnchor* wrap_out = new btSoftBody::DeformableNodeRigidAnchor();
	return wrap_out;
}

btVector3* bullet_btSoftBodyDeformableNodeRigidAnchor_GetFieldOfM_local(btSoftBody::DeformableNodeRigidAnchor* c_this){
	return (btVector3*)(&c_this->m_local);
}

btSoftBody::DeformableFaceRigidContact* bullet_NewbtSoftBodyDeformableFaceRigidContact(){
	btSoftBody::DeformableFaceRigidContact* wrap_out = new btSoftBody::DeformableFaceRigidContact();
	return wrap_out;
}

btVector3* bullet_btSoftBodyDeformableFaceRigidContact_GetFieldOfM_bary(btSoftBody::DeformableFaceRigidContact* c_this){
	return (btVector3*)(&c_this->m_bary);
}

btVector3* bullet_btSoftBodyDeformableFaceRigidContact_GetFieldOfM_contactPoint(btSoftBody::DeformableFaceRigidContact* c_this){
	return (btVector3*)(&c_this->m_contactPoint);
}

btSoftBody::Face** bullet_btSoftBodyDeformableFaceRigidContact_GetFieldOfM_face(btSoftBody::DeformableFaceRigidContact* c_this){
	return (btSoftBody::Face**)(&c_this->m_face);
}

btVector3* bullet_btSoftBodyDeformableFaceRigidContact_GetFieldOfM_weights(btSoftBody::DeformableFaceRigidContact* c_this){
	return (btVector3*)(&c_this->m_weights);
}

btSoftBody::DeformableFaceNodeContact* bullet_NewbtSoftBodyDeformableFaceNodeContact(){
	btSoftBody::DeformableFaceNodeContact* wrap_out = new btSoftBody::DeformableFaceNodeContact();
	return wrap_out;
}

btVector3* bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_bary(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btVector3*)(&c_this->m_bary);
}

double bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_c0(btSoftBody::DeformableFaceNodeContact* c_this){
	return (double)(c_this->m_c0);
}

btCollisionObject** bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_colObj(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btCollisionObject**)(&c_this->m_colObj);
}

btSoftBody::Face** bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_face(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btSoftBody::Face**)(&c_this->m_face);
}

double bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_friction(btSoftBody::DeformableFaceNodeContact* c_this){
	return (double)(c_this->m_friction);
}

double bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_imf(btSoftBody::DeformableFaceNodeContact* c_this){
	return (double)(c_this->m_imf);
}

double bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_margin(btSoftBody::DeformableFaceNodeContact* c_this){
	return (double)(c_this->m_margin);
}

btSoftBody::Node** bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_node(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btSoftBody::Node**)(&c_this->m_node);
}

btVector3* bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_normal(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btVector3*)(&c_this->m_normal);
}

btVector3* bullet_btSoftBodyDeformableFaceNodeContact_GetFieldOfM_weights(btSoftBody::DeformableFaceNodeContact* c_this){
	return (btVector3*)(&c_this->m_weights);
}

btSoftBody::Config* bullet_NewbtSoftBodyConfig(){
	btSoftBody::Config* wrap_out = new btSoftBody::Config();
	return wrap_out;
}

btSoftBody::eAeroModel::_ bullet_btSoftBodyConfig_GetFieldOfAeromodel(btSoftBody::Config* c_this){
	return (btSoftBody::eAeroModel::_)(c_this->aeromodel);
}

int bullet_btSoftBodyConfig_GetFieldOfCiterations(btSoftBody::Config* c_this){
	return (int)(c_this->citerations);
}

int bullet_btSoftBodyConfig_GetFieldOfCollisions(btSoftBody::Config* c_this){
	return (int)(c_this->collisions);
}

int bullet_btSoftBodyConfig_GetFieldOfDiterations(btSoftBody::Config* c_this){
	return (int)(c_this->diterations);
}

double bullet_btSoftBodyConfig_GetFieldOfDrag(btSoftBody::Config* c_this){
	return (double)(c_this->drag);
}

double bullet_btSoftBodyConfig_GetFieldOfKAHR(btSoftBody::Config* c_this){
	return (double)(c_this->kAHR);
}

double bullet_btSoftBodyConfig_GetFieldOfKCHR(btSoftBody::Config* c_this){
	return (double)(c_this->kCHR);
}

double bullet_btSoftBodyConfig_GetFieldOfKDF(btSoftBody::Config* c_this){
	return (double)(c_this->kDF);
}

double bullet_btSoftBodyConfig_GetFieldOfKDG(btSoftBody::Config* c_this){
	return (double)(c_this->kDG);
}

double bullet_btSoftBodyConfig_GetFieldOfKDP(btSoftBody::Config* c_this){
	return (double)(c_this->kDP);
}

double bullet_btSoftBodyConfig_GetFieldOfKKHR(btSoftBody::Config* c_this){
	return (double)(c_this->kKHR);
}

double bullet_btSoftBodyConfig_GetFieldOfKLF(btSoftBody::Config* c_this){
	return (double)(c_this->kLF);
}

double bullet_btSoftBodyConfig_GetFieldOfKMT(btSoftBody::Config* c_this){
	return (double)(c_this->kMT);
}

double bullet_btSoftBodyConfig_GetFieldOfKPR(btSoftBody::Config* c_this){
	return (double)(c_this->kPR);
}

double bullet_btSoftBodyConfig_GetFieldOfKSHR(btSoftBody::Config* c_this){
	return (double)(c_this->kSHR);
}

double bullet_btSoftBodyConfig_GetFieldOfKSK_SPLT_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSK_SPLT_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKSKHR_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSKHR_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKSR_SPLT_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSR_SPLT_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKSRHR_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSRHR_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKSS_SPLT_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSS_SPLT_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKSSHR_CL(btSoftBody::Config* c_this){
	return (double)(c_this->kSSHR_CL);
}

double bullet_btSoftBodyConfig_GetFieldOfKVC(btSoftBody::Config* c_this){
	return (double)(c_this->kVC);
}

double bullet_btSoftBodyConfig_GetFieldOfKVCF(btSoftBody::Config* c_this){
	return (double)(c_this->kVCF);
}

double bullet_btSoftBodyConfig_GetFieldOfM_maxStress(btSoftBody::Config* c_this){
	return (double)(c_this->m_maxStress);
}

double bullet_btSoftBodyConfig_GetFieldOfMaxvolume(btSoftBody::Config* c_this){
	return (double)(c_this->maxvolume);
}

int bullet_btSoftBodyConfig_GetFieldOfPiterations(btSoftBody::Config* c_this){
	return (int)(c_this->piterations);
}

double bullet_btSoftBodyConfig_GetFieldOfTimescale(btSoftBody::Config* c_this){
	return (double)(c_this->timescale);
}

int bullet_btSoftBodyConfig_GetFieldOfViterations(btSoftBody::Config* c_this){
	return (int)(c_this->viterations);
}

btSoftBody::Cluster* bullet_NewbtSoftBodyCluster(){
	btSoftBody::Cluster* wrap_out = new btSoftBody::Cluster();
	return wrap_out;
}

double bullet_btSoftBodyCluster_GetFieldOfM_adamping(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_adamping);
}

btVector3* bullet_btSoftBodyCluster_GetFieldOfM_av(btSoftBody::Cluster* c_this){
	return (btVector3*)(&c_this->m_av);
}

int bullet_btSoftBodyCluster_GetFieldOfM_clusterIndex(btSoftBody::Cluster* c_this){
	return (int)(c_this->m_clusterIndex);
}

bool bullet_btSoftBodyCluster_GetFieldOfM_collide(btSoftBody::Cluster* c_this){
	return (bool)(c_this->m_collide);
}

btVector3* bullet_btSoftBodyCluster_GetFieldOfM_com(btSoftBody::Cluster* c_this){
	return (btVector3*)(&c_this->m_com);
}

bool bullet_btSoftBodyCluster_GetFieldOfM_containsAnchor(btSoftBody::Cluster* c_this){
	return (bool)(c_this->m_containsAnchor);
}

btVector3** bullet_btSoftBodyCluster_GetFieldOfM_dimpulses(btSoftBody::Cluster* c_this){
	return (btVector3**)(&c_this->m_dimpulses);
}

btTransform* bullet_btSoftBodyCluster_GetFieldOfM_framexform(btSoftBody::Cluster* c_this){
	return (btTransform*)(&c_this->m_framexform);
}

double bullet_btSoftBodyCluster_GetFieldOfM_idmass(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_idmass);
}

double bullet_btSoftBodyCluster_GetFieldOfM_imass(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_imass);
}

btMatrix3x3* bullet_btSoftBodyCluster_GetFieldOfM_invwi(btSoftBody::Cluster* c_this){
	return (btMatrix3x3*)(&c_this->m_invwi);
}

double bullet_btSoftBodyCluster_GetFieldOfM_ldamping(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_ldamping);
}

btDbvtNode** bullet_btSoftBodyCluster_GetFieldOfM_leaf(btSoftBody::Cluster* c_this){
	return (btDbvtNode**)(&c_this->m_leaf);
}

btMatrix3x3* bullet_btSoftBodyCluster_GetFieldOfM_locii(btSoftBody::Cluster* c_this){
	return (btMatrix3x3*)(&c_this->m_locii);
}

btVector3* bullet_btSoftBodyCluster_GetFieldOfM_lv(btSoftBody::Cluster* c_this){
	return (btVector3*)(&c_this->m_lv);
}

double bullet_btSoftBodyCluster_GetFieldOfM_matching(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_matching);
}

double bullet_btSoftBodyCluster_GetFieldOfM_maxSelfCollisionImpulse(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_maxSelfCollisionImpulse);
}

double bullet_btSoftBodyCluster_GetFieldOfM_ndamping(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_ndamping);
}

int bullet_btSoftBodyCluster_GetFieldOfM_ndimpulses(btSoftBody::Cluster* c_this){
	return (int)(c_this->m_ndimpulses);
}

int bullet_btSoftBodyCluster_GetFieldOfM_nvimpulses(btSoftBody::Cluster* c_this){
	return (int)(c_this->m_nvimpulses);
}

double bullet_btSoftBodyCluster_GetFieldOfM_selfCollisionImpulseFactor(btSoftBody::Cluster* c_this){
	return (double)(c_this->m_selfCollisionImpulseFactor);
}

btVector3** bullet_btSoftBodyCluster_GetFieldOfM_vimpulses(btSoftBody::Cluster* c_this){
	return (btVector3**)(&c_this->m_vimpulses);
}

btSoftBody::CJoint* bullet_NewbtSoftBodyCJoint(){
	btSoftBody::CJoint* wrap_out = new btSoftBody::CJoint();
	return wrap_out;
}

double bullet_btSoftBodyCJoint_GetFieldOfM_friction(btSoftBody::CJoint* c_this){
	return (double)(c_this->m_friction);
}

int bullet_btSoftBodyCJoint_GetFieldOfM_life(btSoftBody::CJoint* c_this){
	return (int)(c_this->m_life);
}

int bullet_btSoftBodyCJoint_GetFieldOfM_maxlife(btSoftBody::CJoint* c_this){
	return (int)(c_this->m_maxlife);
}

btVector3* bullet_btSoftBodyCJoint_GetFieldOfM_normal(btSoftBody::CJoint* c_this){
	return (btVector3*)(&c_this->m_normal);
}

btVector3** bullet_btSoftBodyCJoint_GetFieldOfM_rpos(btSoftBody::CJoint* c_this){
	return (btVector3**)(&c_this->m_rpos);
}

btSoftBody::Body* bullet_NewbtSoftBodyBody(){
	btSoftBody::Body* wrap_out = new btSoftBody::Body();
	return wrap_out;
}

btSoftBody::Body* bullet_NewbtSoftBodyBody1(btSoftBody::Cluster* p){
	btSoftBody::Cluster * c_arg_p=(btSoftBody::Cluster *)(void*)(p);
	btSoftBody::Body* wrap_out = new btSoftBody::Body(c_arg_p);
	return wrap_out;
}

btSoftBody::Body* bullet_NewbtSoftBodyBody2(btCollisionObject* colObj){
	btCollisionObject const * c_arg_colObj=(btCollisionObject const *)(void*)(colObj);
	btSoftBody::Body* wrap_out = new btSoftBody::Body(c_arg_colObj);
	return wrap_out;
}

void bullet_btSoftBodyBody_activate(btSoftBody::Body* c_this){
	c_this->activate();
}

btVector3* bullet_btSoftBodyBody_angularVelocity(btSoftBody::Body* c_this,btVector3* rpos){
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btVector3 c_out = c_this->angularVelocity(c_arg_rpos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btSoftBodyBody_angularVelocity1(btSoftBody::Body* c_this){
	btVector3 c_out = c_this->angularVelocity();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

void bullet_btSoftBodyBody_applyAImpulse(btSoftBody::Body* c_this,btSoftBody::Impulse* impulse){
	btSoftBody::Impulse const& c_arg_impulse=(btSoftBody::Impulse const&)(*impulse);
	c_this->applyAImpulse(c_arg_impulse);
}

void bullet_btSoftBodyBody_applyDAImpulse(btSoftBody::Body* c_this,btVector3* impulse){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->applyDAImpulse(c_arg_impulse);
}

void bullet_btSoftBodyBody_applyDCImpulse(btSoftBody::Body* c_this,btVector3* impulse){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->applyDCImpulse(c_arg_impulse);
}

void bullet_btSoftBodyBody_applyDImpulse(btSoftBody::Body* c_this,btVector3* impulse,btVector3* rpos){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	c_this->applyDImpulse(c_arg_impulse,c_arg_rpos);
}

void bullet_btSoftBodyBody_applyImpulse(btSoftBody::Body* c_this,btSoftBody::Impulse* impulse,btVector3* rpos){
	btSoftBody::Impulse const& c_arg_impulse=(btSoftBody::Impulse const&)(*impulse);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	c_this->applyImpulse(c_arg_impulse,c_arg_rpos);
}

void bullet_btSoftBodyBody_applyVAImpulse(btSoftBody::Body* c_this,btVector3* impulse){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->applyVAImpulse(c_arg_impulse);
}

void bullet_btSoftBodyBody_applyVImpulse(btSoftBody::Body* c_this,btVector3* impulse,btVector3* rpos){
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	c_this->applyVImpulse(c_arg_impulse,c_arg_rpos);
}

btCollisionObject** bullet_btSoftBodyBody_GetFieldOfM_collisionObject(btSoftBody::Body* c_this){
	return (btCollisionObject**)(&c_this->m_collisionObject);
}

btSoftBody::Cluster** bullet_btSoftBodyBody_GetFieldOfM_soft(btSoftBody::Body* c_this){
	return (btSoftBody::Cluster**)(&c_this->m_soft);
}

double bullet_btSoftBodyBody_invMass(btSoftBody::Body* c_this){
	btScalar c_out = c_this->invMass();
	double wrap_out = (c_out);
	return wrap_out;
}

btMatrix3x3* bullet_btSoftBodyBody_invWorldInertia(btSoftBody::Body* c_this){
	btMatrix3x3 const& c_out = c_this->invWorldInertia();
	btMatrix3x3* wrap_out = (btMatrix3x3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btSoftBodyBody_linearVelocity(btSoftBody::Body* c_this){
	btVector3 c_out = c_this->linearVelocity();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btSoftBodyBody_velocity(btSoftBody::Body* c_this,btVector3* rpos){
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btVector3 c_out = c_this->velocity(c_arg_rpos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btTransform* bullet_btSoftBodyBody_xform(btSoftBody::Body* c_this){
	btTransform const& c_out = c_this->xform();
	btTransform* wrap_out = (btTransform*)(&c_out);
	return wrap_out;
}

btSoftBody::Anchor* bullet_NewbtSoftBodyAnchor(){
	btSoftBody::Anchor* wrap_out = new btSoftBody::Anchor();
	return wrap_out;
}

btMatrix3x3* bullet_btSoftBodyAnchor_GetFieldOfM_c0(btSoftBody::Anchor* c_this){
	return (btMatrix3x3*)(&c_this->m_c0);
}

btVector3* bullet_btSoftBodyAnchor_GetFieldOfM_c1(btSoftBody::Anchor* c_this){
	return (btVector3*)(&c_this->m_c1);
}

double bullet_btSoftBodyAnchor_GetFieldOfM_c2(btSoftBody::Anchor* c_this){
	return (double)(c_this->m_c2);
}

double bullet_btSoftBodyAnchor_GetFieldOfM_influence(btSoftBody::Anchor* c_this){
	return (double)(c_this->m_influence);
}

btVector3* bullet_btSoftBodyAnchor_GetFieldOfM_local(btSoftBody::Anchor* c_this){
	return (btVector3*)(&c_this->m_local);
}

btSoftBody::Node** bullet_btSoftBodyAnchor_GetFieldOfM_node(btSoftBody::Anchor* c_this){
	return (btSoftBody::Node**)(&c_this->m_node);
}

btSoftBody::AJoint* bullet_NewbtSoftBodyAJoint(){
	btSoftBody::AJoint* wrap_out = new btSoftBody::AJoint();
	return wrap_out;
}

btVector3** bullet_btSoftBodyAJoint_GetFieldOfM_axis(btSoftBody::AJoint* c_this){
	return (btVector3**)(&c_this->m_axis);
}

btSoftBody* bullet_NewbtSoftBody(btSoftBodyWorldInfo* worldInfo,int node_count,btVector3* x,double* m){
	btSoftBodyWorldInfo * c_arg_worldInfo=(btSoftBodyWorldInfo *)(void*)(worldInfo);
	int c_arg_node_count=node_count;
	btVector3 const * c_arg_x=(btVector3 const *)(void*)(x);
	btScalar const * c_arg_m=(btScalar const *)(void*)(m);
	btSoftBody* wrap_out = new btSoftBody(c_arg_worldInfo,c_arg_node_count,c_arg_x,c_arg_m);
	return wrap_out;
}

btSoftBody* bullet_NewbtSoftBody1(btSoftBodyWorldInfo* worldInfo){
	btSoftBodyWorldInfo * c_arg_worldInfo=(btSoftBodyWorldInfo *)(void*)(worldInfo);
	btSoftBody* wrap_out = new btSoftBody(c_arg_worldInfo);
	return wrap_out;
}

void bullet_btSoftBody_addAeroForceToFace(btSoftBody* c_this,btVector3* windVelocity,int faceIndex){
	btVector3 const& c_arg_windVelocity=(btVector3 const&)(*windVelocity);
	int c_arg_faceIndex=faceIndex;
	c_this->addAeroForceToFace(c_arg_windVelocity,c_arg_faceIndex);
}

void bullet_btSoftBody_addAeroForceToNode(btSoftBody* c_this,btVector3* windVelocity,int nodeIndex){
	btVector3 const& c_arg_windVelocity=(btVector3 const&)(*windVelocity);
	int c_arg_nodeIndex=nodeIndex;
	c_this->addAeroForceToNode(c_arg_windVelocity,c_arg_nodeIndex);
}

void bullet_btSoftBody_addForce(btSoftBody* c_this,btVector3* force){
	btVector3 const& c_arg_force=(btVector3 const&)(*force);
	c_this->addForce(c_arg_force);
}

void bullet_btSoftBody_addForce1(btSoftBody* c_this,btVector3* force,int node){
	btVector3 const& c_arg_force=(btVector3 const&)(*force);
	int c_arg_node=node;
	c_this->addForce(c_arg_force,c_arg_node);
}

void bullet_btSoftBody_addVelocity(btSoftBody* c_this,btVector3* velocity){
	btVector3 const& c_arg_velocity=(btVector3 const&)(*velocity);
	c_this->addVelocity(c_arg_velocity);
}

void bullet_btSoftBody_addVelocity1(btSoftBody* c_this,btVector3* velocity,int node){
	btVector3 const& c_arg_velocity=(btVector3 const&)(*velocity);
	int c_arg_node=node;
	c_this->addVelocity(c_arg_velocity,c_arg_node);
}

void bullet_btSoftBody_advanceDeformation(btSoftBody* c_this){
	c_this->advanceDeformation();
}

void bullet_btSoftBody_appendAnchor(btSoftBody* c_this,int node,btRigidBody* body,bool disableCollisionBetweenLinkedBodies,double influence){
	int c_arg_node=node;
	btRigidBody * c_arg_body=(btRigidBody *)(void*)(body);
	bool c_arg_disableCollisionBetweenLinkedBodies=disableCollisionBetweenLinkedBodies;
	btScalar c_arg_influence=influence;
	c_this->appendAnchor(c_arg_node,c_arg_body,c_arg_disableCollisionBetweenLinkedBodies,c_arg_influence);
}

void bullet_btSoftBody_appendAnchor1(btSoftBody* c_this,int node,btRigidBody* body,btVector3* localPivot,bool disableCollisionBetweenLinkedBodies,double influence){
	int c_arg_node=node;
	btRigidBody * c_arg_body=(btRigidBody *)(void*)(body);
	btVector3 const& c_arg_localPivot=(btVector3 const&)(*localPivot);
	bool c_arg_disableCollisionBetweenLinkedBodies=disableCollisionBetweenLinkedBodies;
	btScalar c_arg_influence=influence;
	c_this->appendAnchor(c_arg_node,c_arg_body,c_arg_localPivot,c_arg_disableCollisionBetweenLinkedBodies,c_arg_influence);
}

void bullet_btSoftBody_appendAngularJoint(btSoftBody* c_this,btSoftBody::AJoint::Specs* specs,btSoftBody::Cluster* body0,btSoftBody::Body* body1){
	btSoftBody::AJoint::Specs const& c_arg_specs=(btSoftBody::AJoint::Specs const&)(*specs);
	btSoftBody::Cluster * c_arg_body0=(btSoftBody::Cluster *)(void*)(body0);
	btSoftBody::Body c_arg_body1=(*body1);
	c_this->appendAngularJoint(c_arg_specs,c_arg_body0,c_arg_body1);
}

void bullet_btSoftBody_appendAngularJoint1(btSoftBody* c_this,btSoftBody::AJoint::Specs* specs,btSoftBody::Body* body){
	btSoftBody::AJoint::Specs const& c_arg_specs=(btSoftBody::AJoint::Specs const&)(*specs);
	btSoftBody::Body c_arg_body=(*body);
	c_this->appendAngularJoint(c_arg_specs,c_arg_body);
}

void bullet_btSoftBody_appendAngularJoint2(btSoftBody* c_this,btSoftBody::AJoint::Specs* specs,btSoftBody* body){
	btSoftBody::AJoint::Specs const& c_arg_specs=(btSoftBody::AJoint::Specs const&)(*specs);
	btSoftBody * c_arg_body=(btSoftBody *)(void*)(body);
	c_this->appendAngularJoint(c_arg_specs,c_arg_body);
}

void bullet_btSoftBody_appendDeformableAnchor(btSoftBody* c_this,int node,btRigidBody* body){
	int c_arg_node=node;
	btRigidBody * c_arg_body=(btRigidBody *)(void*)(body);
	c_this->appendDeformableAnchor(c_arg_node,c_arg_body);
}

void bullet_btSoftBody_appendDeformableAnchor1(btSoftBody* c_this,int node,btMultiBodyLinkCollider* link){
	int c_arg_node=node;
	btMultiBodyLinkCollider * c_arg_link=(btMultiBodyLinkCollider *)(void*)(link);
	c_this->appendDeformableAnchor(c_arg_node,c_arg_link);
}

void bullet_btSoftBody_appendFace(btSoftBody* c_this,int model,btSoftBody::Material* mat){
	int c_arg_model=model;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	c_this->appendFace(c_arg_model,c_arg_mat);
}

void bullet_btSoftBody_appendFace1(btSoftBody* c_this,int node0,int node1,int node2,btSoftBody::Material* mat){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	int c_arg_node2=node2;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	c_this->appendFace(c_arg_node0,c_arg_node1,c_arg_node2,c_arg_mat);
}

void bullet_btSoftBody_appendLinearJoint(btSoftBody* c_this,btSoftBody::LJoint::Specs* specs,btSoftBody::Cluster* body0,btSoftBody::Body* body1){
	btSoftBody::LJoint::Specs const& c_arg_specs=(btSoftBody::LJoint::Specs const&)(*specs);
	btSoftBody::Cluster * c_arg_body0=(btSoftBody::Cluster *)(void*)(body0);
	btSoftBody::Body c_arg_body1=(*body1);
	c_this->appendLinearJoint(c_arg_specs,c_arg_body0,c_arg_body1);
}

void bullet_btSoftBody_appendLinearJoint1(btSoftBody* c_this,btSoftBody::LJoint::Specs* specs,btSoftBody::Body* body){
	btSoftBody::LJoint::Specs const& c_arg_specs=(btSoftBody::LJoint::Specs const&)(*specs);
	btSoftBody::Body c_arg_body=(*body);
	c_this->appendLinearJoint(c_arg_specs,c_arg_body);
}

void bullet_btSoftBody_appendLinearJoint2(btSoftBody* c_this,btSoftBody::LJoint::Specs* specs,btSoftBody* body){
	btSoftBody::LJoint::Specs const& c_arg_specs=(btSoftBody::LJoint::Specs const&)(*specs);
	btSoftBody * c_arg_body=(btSoftBody *)(void*)(body);
	c_this->appendLinearJoint(c_arg_specs,c_arg_body);
}

void bullet_btSoftBody_appendLink(btSoftBody* c_this,int model,btSoftBody::Material* mat){
	int c_arg_model=model;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	c_this->appendLink(c_arg_model,c_arg_mat);
}

void bullet_btSoftBody_appendLink1(btSoftBody* c_this,int node0,int node1,btSoftBody::Material* mat,bool bcheckexist){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	bool c_arg_bcheckexist=bcheckexist;
	c_this->appendLink(c_arg_node0,c_arg_node1,c_arg_mat,c_arg_bcheckexist);
}

void bullet_btSoftBody_appendLink2(btSoftBody* c_this,btSoftBody::Node* node0,btSoftBody::Node* node1,btSoftBody::Material* mat,bool bcheckexist){
	btSoftBody::Node * c_arg_node0=(btSoftBody::Node *)(void*)(node0);
	btSoftBody::Node * c_arg_node1=(btSoftBody::Node *)(void*)(node1);
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	bool c_arg_bcheckexist=bcheckexist;
	c_this->appendLink(c_arg_node0,c_arg_node1,c_arg_mat,c_arg_bcheckexist);
}

void bullet_btSoftBody_appendNode(btSoftBody* c_this,btVector3* x,double m){
	btVector3 const& c_arg_x=(btVector3 const&)(*x);
	btScalar c_arg_m=m;
	c_this->appendNode(c_arg_x,c_arg_m);
}

void bullet_btSoftBody_appendNote(btSoftBody* c_this,char* text,btVector3* o,btVector4* c,btSoftBody::Node* n0,btSoftBody::Node* n1,btSoftBody::Node* n2,btSoftBody::Node* n3){
	char const * c_arg_text=(char const *)(void*)(text);
	btVector3 const& c_arg_o=(btVector3 const&)(*o);
	btVector4 const& c_arg_c=(btVector4 const&)(*c);
	btSoftBody::Node * c_arg_n0=(btSoftBody::Node *)(void*)(n0);
	btSoftBody::Node * c_arg_n1=(btSoftBody::Node *)(void*)(n1);
	btSoftBody::Node * c_arg_n2=(btSoftBody::Node *)(void*)(n2);
	btSoftBody::Node * c_arg_n3=(btSoftBody::Node *)(void*)(n3);
	c_this->appendNote(c_arg_text,c_arg_o,c_arg_c,c_arg_n0,c_arg_n1,c_arg_n2,c_arg_n3);
}

void bullet_btSoftBody_appendNote1(btSoftBody* c_this,char* text,btVector3* o,btSoftBody::Node* feature){
	char const * c_arg_text=(char const *)(void*)(text);
	btVector3 const& c_arg_o=(btVector3 const&)(*o);
	btSoftBody::Node * c_arg_feature=(btSoftBody::Node *)(void*)(feature);
	c_this->appendNote(c_arg_text,c_arg_o,c_arg_feature);
}

void bullet_btSoftBody_appendNote2(btSoftBody* c_this,char* text,btVector3* o,btSoftBody::Link* feature){
	char const * c_arg_text=(char const *)(void*)(text);
	btVector3 const& c_arg_o=(btVector3 const&)(*o);
	btSoftBody::Link * c_arg_feature=(btSoftBody::Link *)(void*)(feature);
	c_this->appendNote(c_arg_text,c_arg_o,c_arg_feature);
}

void bullet_btSoftBody_appendNote3(btSoftBody* c_this,char* text,btVector3* o,btSoftBody::Face* feature){
	char const * c_arg_text=(char const *)(void*)(text);
	btVector3 const& c_arg_o=(btVector3 const&)(*o);
	btSoftBody::Face * c_arg_feature=(btSoftBody::Face *)(void*)(feature);
	c_this->appendNote(c_arg_text,c_arg_o,c_arg_feature);
}

void bullet_btSoftBody_appendTetra(btSoftBody* c_this,int model,btSoftBody::Material* mat){
	int c_arg_model=model;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	c_this->appendTetra(c_arg_model,c_arg_mat);
}

void bullet_btSoftBody_appendTetra1(btSoftBody* c_this,int node0,int node1,int node2,int node3,btSoftBody::Material* mat){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	int c_arg_node2=node2;
	int c_arg_node3=node3;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	c_this->appendTetra(c_arg_node0,c_arg_node1,c_arg_node2,c_arg_node3,c_arg_mat);
}

void bullet_btSoftBody_applyClusters(btSoftBody* c_this,bool drift){
	bool c_arg_drift=drift;
	c_this->applyClusters(c_arg_drift);
}

void bullet_btSoftBody_applyForces(btSoftBody* c_this){
	c_this->applyForces();
}

void bullet_btSoftBody_applyRepulsionForce(btSoftBody* c_this,double timeStep,bool applySpringForce){
	btScalar c_arg_timeStep=timeStep;
	bool c_arg_applySpringForce=applySpringForce;
	c_this->applyRepulsionForce(c_arg_timeStep,c_arg_applySpringForce);
}

bool bullet_btSoftBody_checkContact(btSoftBody* c_this,btCollisionObjectWrapper* colObjWrap,btVector3* x,double margin,btSoftBody::sCti* cti){
	btCollisionObjectWrapper const * c_arg_colObjWrap=(btCollisionObjectWrapper const *)(void*)(colObjWrap);
	btVector3 const& c_arg_x=(btVector3 const&)(*x);
	btScalar c_arg_margin=margin;
	btSoftBody::sCti& c_arg_cti=(btSoftBody::sCti&)(*cti);
	bool c_out = c_this->checkContact(c_arg_colObjWrap,c_arg_x,c_arg_margin,c_arg_cti);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_checkDeformableContact(btSoftBody* c_this,btCollisionObjectWrapper* colObjWrap,btVector3* x,double margin,btSoftBody::sCti* cti,bool predict){
	btCollisionObjectWrapper const * c_arg_colObjWrap=(btCollisionObjectWrapper const *)(void*)(colObjWrap);
	btVector3 const& c_arg_x=(btVector3 const&)(*x);
	btScalar c_arg_margin=margin;
	btSoftBody::sCti& c_arg_cti=(btSoftBody::sCti&)(*cti);
	bool c_arg_predict=predict;
	bool c_out = c_this->checkDeformableContact(c_arg_colObjWrap,c_arg_x,c_arg_margin,c_arg_cti,c_arg_predict);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_checkDeformableFaceContact(btSoftBody* c_this,btCollisionObjectWrapper* colObjWrap,btSoftBody::Face* f,btVector3* contact_point,btVector3* bary,double margin,btSoftBody::sCti* cti,bool predict){
	btCollisionObjectWrapper const * c_arg_colObjWrap=(btCollisionObjectWrapper const *)(void*)(colObjWrap);
	btSoftBody::Face& c_arg_f=(btSoftBody::Face&)(*f);
	btVector3& c_arg_contact_point=(btVector3&)(*contact_point);
	btVector3& c_arg_bary=(btVector3&)(*bary);
	btScalar c_arg_margin=margin;
	btSoftBody::sCti& c_arg_cti=(btSoftBody::sCti&)(*cti);
	bool c_arg_predict=predict;
	bool c_out = c_this->checkDeformableFaceContact(c_arg_colObjWrap,c_arg_f,c_arg_contact_point,c_arg_bary,c_arg_margin,c_arg_cti,c_arg_predict);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_checkFace(btSoftBody* c_this,int node0,int node1,int node2){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	int c_arg_node2=node2;
	bool c_out = c_this->checkFace(c_arg_node0,c_arg_node1,c_arg_node2);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_checkLink(btSoftBody* c_this,int node0,int node1){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	bool c_out = c_this->checkLink(c_arg_node0,c_arg_node1);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_checkLink1(btSoftBody* c_this,btSoftBody::Node* node0,btSoftBody::Node* node1){
	btSoftBody::Node const * c_arg_node0=(btSoftBody::Node const *)(void*)(node0);
	btSoftBody::Node const * c_arg_node1=(btSoftBody::Node const *)(void*)(node1);
	bool c_out = c_this->checkLink(c_arg_node0,c_arg_node1);
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_cleanupClusters(btSoftBody* c_this){
	c_this->cleanupClusters();
}

void bullet_btSoftBody_clusterAImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btSoftBody::Impulse* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btSoftBody::Impulse const& c_arg_impulse=(btSoftBody::Impulse const&)(*impulse);
	c_this->clusterAImpulse(c_arg_cluster,c_arg_impulse);
}

btVector3* bullet_btSoftBody_clusterCom(btSoftBody* c_this,btSoftBody::Cluster* cluster){
	btSoftBody::Cluster const * c_arg_cluster=(btSoftBody::Cluster const *)(void*)(cluster);
	btVector3 c_out = c_this->clusterCom(c_arg_cluster);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3* bullet_btSoftBody_clusterCom1(btSoftBody* c_this,int cluster){
	int c_arg_cluster=cluster;
	btVector3 c_out = c_this->clusterCom(c_arg_cluster);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

int bullet_btSoftBody_clusterCount(btSoftBody* c_this){
	int c_out = c_this->clusterCount();
	int wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_clusterDAImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->clusterDAImpulse(c_arg_cluster,c_arg_impulse);
}

void bullet_btSoftBody_clusterDCImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->clusterDCImpulse(c_arg_cluster,c_arg_impulse);
}

void bullet_btSoftBody_clusterDImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* rpos,btVector3* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->clusterDImpulse(c_arg_cluster,c_arg_rpos,c_arg_impulse);
}

void bullet_btSoftBody_clusterImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* rpos,btSoftBody::Impulse* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btSoftBody::Impulse const& c_arg_impulse=(btSoftBody::Impulse const&)(*impulse);
	c_this->clusterImpulse(c_arg_cluster,c_arg_rpos,c_arg_impulse);
}

void bullet_btSoftBody_clusterVAImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->clusterVAImpulse(c_arg_cluster,c_arg_impulse);
}

btVector3* bullet_btSoftBody_clusterVelocity(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* rpos){
	btSoftBody::Cluster const * c_arg_cluster=(btSoftBody::Cluster const *)(void*)(cluster);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btVector3 c_out = c_this->clusterVelocity(c_arg_cluster,c_arg_rpos);
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

void bullet_btSoftBody_clusterVImpulse(btSoftBody* c_this,btSoftBody::Cluster* cluster,btVector3* rpos,btVector3* impulse){
	btSoftBody::Cluster * c_arg_cluster=(btSoftBody::Cluster *)(void*)(cluster);
	btVector3 const& c_arg_rpos=(btVector3 const&)(*rpos);
	btVector3 const& c_arg_impulse=(btVector3 const&)(*impulse);
	c_this->clusterVImpulse(c_arg_cluster,c_arg_rpos,c_arg_impulse);
}

bool bullet_btSoftBody_cutLink(btSoftBody* c_this,int node0,int node1,double position){
	int c_arg_node0=node0;
	int c_arg_node1=node1;
	btScalar c_arg_position=position;
	bool c_out = c_this->cutLink(c_arg_node0,c_arg_node1,c_arg_position);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_cutLink1(btSoftBody* c_this,btSoftBody::Node* node0,btSoftBody::Node* node1,double position){
	btSoftBody::Node const * c_arg_node0=(btSoftBody::Node const *)(void*)(node0);
	btSoftBody::Node const * c_arg_node1=(btSoftBody::Node const *)(void*)(node1);
	btScalar c_arg_position=position;
	bool c_out = c_this->cutLink(c_arg_node0,c_arg_node1,c_arg_position);
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_dampClusters(btSoftBody* c_this){
	c_this->dampClusters();
}

void bullet_btSoftBody_defaultCollisionHandler(btSoftBody* c_this,btCollisionObjectWrapper* pcoWrap){
	btCollisionObjectWrapper const * c_arg_pcoWrap=(btCollisionObjectWrapper const *)(void*)(pcoWrap);
	c_this->defaultCollisionHandler(c_arg_pcoWrap);
}

void bullet_btSoftBody_defaultCollisionHandler1(btSoftBody* c_this,btSoftBody* psb){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	c_this->defaultCollisionHandler(c_arg_psb);
}

btVector3* bullet_btSoftBody_evaluateCom(btSoftBody* c_this){
	btVector3 c_out = c_this->evaluateCom();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

int bullet_btSoftBody_generateBendingConstraints(btSoftBody* c_this,int distance,btSoftBody::Material* mat){
	int c_arg_distance=distance;
	btSoftBody::Material * c_arg_mat=(btSoftBody::Material *)(void*)(mat);
	int c_out = c_this->generateBendingConstraints(c_arg_distance,c_arg_mat);
	int wrap_out = (c_out);
	return wrap_out;
}

int bullet_btSoftBody_generateClusters(btSoftBody* c_this,int k,int maxiterations){
	int c_arg_k=k;
	int c_arg_maxiterations=maxiterations;
	int c_out = c_this->generateClusters(c_arg_k,c_arg_maxiterations);
	int wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_geometricCollisionHandler(btSoftBody* c_this,btSoftBody* psb){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	c_this->geometricCollisionHandler(c_arg_psb);
}

btVector3* bullet_btSoftBody_getCenterOfMass(btSoftBody* c_this){
	btVector3 c_out = c_this->getCenterOfMass();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

btVector3** bullet_btSoftBody_GetFieldOfM_bounds(btSoftBody* c_this){
	return (btVector3**)(&c_this->m_bounds);
}

bool bullet_btSoftBody_GetFieldOfM_bUpdateRtCst(btSoftBody* c_this){
	return (bool)(c_this->m_bUpdateRtCst);
}

bool bullet_btSoftBody_GetFieldOfM_cacheBarycenter(btSoftBody* c_this){
	return (bool)(c_this->m_cacheBarycenter);
}

btDbvt* bullet_btSoftBody_GetFieldOfM_cdbvt(btSoftBody* c_this){
	return (btDbvt*)(&c_this->m_cdbvt);
}

double bullet_btSoftBody_GetFieldOfM_dampingCoefficient(btSoftBody* c_this){
	return (double)(c_this->m_dampingCoefficient);
}

btDbvt* bullet_btSoftBody_GetFieldOfM_fdbvt(btSoftBody* c_this){
	return (btDbvt*)(&c_this->m_fdbvt);
}

double bullet_btSoftBody_GetFieldOfM_gravityFactor(btSoftBody* c_this){
	return (double)(c_this->m_gravityFactor);
}

double bullet_btSoftBody_GetFieldOfM_maxSpeedSquared(btSoftBody* c_this){
	return (double)(c_this->m_maxSpeedSquared);
}

btDbvt* bullet_btSoftBody_GetFieldOfM_ndbvt(btSoftBody* c_this){
	return (btDbvt*)(&c_this->m_ndbvt);
}

bool bullet_btSoftBody_GetFieldOfM_reducedModel(btSoftBody* c_this){
	return (bool)(c_this->m_reducedModel);
}

double bullet_btSoftBody_GetFieldOfM_repulsionStiffness(btSoftBody* c_this){
	return (double)(c_this->m_repulsionStiffness);
}

double bullet_btSoftBody_GetFieldOfM_restLengthScale(btSoftBody* c_this){
	return (double)(c_this->m_restLengthScale);
}

double bullet_btSoftBody_GetFieldOfM_sleepingThreshold(btSoftBody* c_this){
	return (double)(c_this->m_sleepingThreshold);
}

bool bullet_btSoftBody_GetFieldOfM_softSoftCollision(btSoftBody* c_this){
	return (bool)(c_this->m_softSoftCollision);
}

btSoftBody::SolverState* bullet_btSoftBody_GetFieldOfM_sst(btSoftBody* c_this){
	return (btSoftBody::SolverState*)(&c_this->m_sst);
}

void** bullet_btSoftBody_GetFieldOfM_tag(btSoftBody* c_this){
	return (void**)(&c_this->m_tag);
}

double bullet_btSoftBody_GetFieldOfM_timeacc(btSoftBody* c_this){
	return (double)(c_this->m_timeacc);
}

bool bullet_btSoftBody_GetFieldOfM_useSelfCollision(btSoftBody* c_this){
	return (bool)(c_this->m_useSelfCollision);
}

btVector3* bullet_btSoftBody_GetFieldOfM_windVelocity(btSoftBody* c_this){
	return (btVector3*)(&c_this->m_windVelocity);
}

btSoftBodyWorldInfo** bullet_btSoftBody_GetFieldOfM_worldInfo(btSoftBody* c_this){
	return (btSoftBodyWorldInfo**)(&c_this->m_worldInfo);
}

btVector3* bullet_btSoftBody_getLinearVelocity(btSoftBody* c_this){
	btVector3 c_out = c_this->getLinearVelocity();
	btVector3* wrap_out = new btVector3(c_out);
	return wrap_out;
}

double bullet_btSoftBody_getMass(btSoftBody* c_this,int node){
	int c_arg_node=node;
	btScalar c_out = c_this->getMass(c_arg_node);
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btSoftBody_getRestLengthScale(btSoftBody* c_this){
	btScalar c_out = c_this->getRestLengthScale();
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btSoftBody_getTotalMass(btSoftBody* c_this){
	btScalar c_out = c_this->getTotalMass();
	double wrap_out = (c_out);
	return wrap_out;
}

double bullet_btSoftBody_getVolume(btSoftBody* c_this){
	btScalar c_out = c_this->getVolume();
	double wrap_out = (c_out);
	return wrap_out;
}

btVector3* bullet_btSoftBody_getWindVelocity(btSoftBody* c_this){
	btVector3 const& c_out = c_this->getWindVelocity();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btSoftBodyWorldInfo* bullet_btSoftBody_getWorldInfo(btSoftBody* c_this){
	btSoftBodyWorldInfo * c_out = c_this->getWorldInfo();
	btSoftBodyWorldInfo* wrap_out = (btSoftBodyWorldInfo*)(void*)(c_out);
	return wrap_out;
}

void bullet_btSoftBody_indicesToPointers(btSoftBody* c_this,int* Map){
	int const * c_arg_Map=(int const *)(void*)(Map);
	c_this->indicesToPointers(c_arg_Map);
}

void bullet_btSoftBody_initDefaults(btSoftBody* c_this){
	c_this->initDefaults();
}

void bullet_btSoftBody_initializeClusters(btSoftBody* c_this){
	c_this->initializeClusters();
}

void bullet_btSoftBody_initializeDmInverse(btSoftBody* c_this){
	c_this->initializeDmInverse();
}

void bullet_btSoftBody_initializeFaceTree(btSoftBody* c_this){
	c_this->initializeFaceTree();
}

void bullet_btSoftBody_integrateMotion(btSoftBody* c_this){
	c_this->integrateMotion();
}

void bullet_btSoftBody_interpolateRenderMesh(btSoftBody* c_this){
	c_this->interpolateRenderMesh();
}

void bullet_btSoftBody_pointersToIndices(btSoftBody* c_this){
	c_this->pointersToIndices();
}

void bullet_btSoftBody_predictMotion(btSoftBody* c_this,double dt){
	btScalar c_arg_dt=dt;
	c_this->predictMotion(c_arg_dt);
}

void bullet_btSoftBody_prepareClusters(btSoftBody* c_this,int iterations){
	int c_arg_iterations=iterations;
	c_this->prepareClusters(c_arg_iterations);
}

void bullet_btSoftBody_PSolve_Anchors(btSoftBody* c_this,btSoftBody* psb,double kst,double ti){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_kst=kst;
	btScalar c_arg_ti=ti;
	c_this->PSolve_Anchors(c_arg_psb,c_arg_kst,c_arg_ti);
}

void bullet_btSoftBody_PSolve_Links(btSoftBody* c_this,btSoftBody* psb,double kst,double ti){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_kst=kst;
	btScalar c_arg_ti=ti;
	c_this->PSolve_Links(c_arg_psb,c_arg_kst,c_arg_ti);
}

void bullet_btSoftBody_PSolve_RContacts(btSoftBody* c_this,btSoftBody* psb,double kst,double ti){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_kst=kst;
	btScalar c_arg_ti=ti;
	c_this->PSolve_RContacts(c_arg_psb,c_arg_kst,c_arg_ti);
}

void bullet_btSoftBody_PSolve_SContacts(btSoftBody* c_this,btSoftBody* psb,double tmp_arg1,double ti){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_tmp_arg1=tmp_arg1;
	btScalar c_arg_ti=ti;
	c_this->PSolve_SContacts(c_arg_psb,c_arg_tmp_arg1,c_arg_ti);
}

void bullet_btSoftBody_randomizeConstraints(btSoftBody* c_this){
	c_this->randomizeConstraints();
}

bool bullet_btSoftBody_rayFaceTest(btSoftBody* c_this,btVector3* rayFrom,btVector3* rayTo,btSoftBody::sRayCast* results){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btSoftBody::sRayCast& c_arg_results=(btSoftBody::sRayCast&)(*results);
	bool c_out = c_this->rayFaceTest(c_arg_rayFrom,c_arg_rayTo,c_arg_results);
	bool wrap_out = (c_out);
	return wrap_out;
}

int bullet_btSoftBody_rayFaceTest1(btSoftBody* c_this,btVector3* rayFrom,btVector3* rayTo,double* mint,int* index){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btScalar& c_arg_mint=(btScalar&)(*mint);
	int& c_arg_index=(int&)(*index);
	int c_out = c_this->rayFaceTest(c_arg_rayFrom,c_arg_rayTo,c_arg_mint,c_arg_index);
	int wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btSoftBody_rayTest(btSoftBody* c_this,btVector3* rayFrom,btVector3* rayTo,btSoftBody::sRayCast* results){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btSoftBody::sRayCast& c_arg_results=(btSoftBody::sRayCast&)(*results);
	bool c_out = c_this->rayTest(c_arg_rayFrom,c_arg_rayTo,c_arg_results);
	bool wrap_out = (c_out);
	return wrap_out;
}

int bullet_btSoftBody_rayTest1(btSoftBody* c_this,btVector3* rayFrom,btVector3* rayTo,double* mint,btSoftBody::eFeature::_* feature,int* index,bool bcountonly){
	btVector3 const& c_arg_rayFrom=(btVector3 const&)(*rayFrom);
	btVector3 const& c_arg_rayTo=(btVector3 const&)(*rayTo);
	btScalar& c_arg_mint=(btScalar&)(*mint);
	btSoftBody::eFeature::_& c_arg_feature=(btSoftBody::eFeature::_&)(*feature);
	int& c_arg_index=(int&)(*index);
	bool c_arg_bcountonly=bcountonly;
	int c_out = c_this->rayTest(c_arg_rayFrom,c_arg_rayTo,c_arg_mint,c_arg_feature,c_arg_index,c_arg_bcountonly);
	int wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_rebuildNodeTree(btSoftBody* c_this){
	c_this->rebuildNodeTree();
}

void bullet_btSoftBody_refine(btSoftBody* c_this,btSoftBody::ImplicitFn* ifn,double accurary,bool cut){
	btSoftBody::ImplicitFn * c_arg_ifn=(btSoftBody::ImplicitFn *)(void*)(ifn);
	btScalar c_arg_accurary=accurary;
	bool c_arg_cut=cut;
	c_this->refine(c_arg_ifn,c_arg_accurary,c_arg_cut);
}

void bullet_btSoftBody_releaseCluster(btSoftBody* c_this,int index){
	int c_arg_index=index;
	c_this->releaseCluster(c_arg_index);
}

void bullet_btSoftBody_releaseClusters(btSoftBody* c_this){
	c_this->releaseClusters();
}

void bullet_btSoftBody_removeAnchor(btSoftBody* c_this,int node){
	int c_arg_node=node;
	c_this->removeAnchor(c_arg_node);
}

void bullet_btSoftBody_resetLinkRestLengths(btSoftBody* c_this){
	c_this->resetLinkRestLengths();
}

void bullet_btSoftBody_setAngularVelocity(btSoftBody* c_this,btVector3* angVel){
	btVector3 const& c_arg_angVel=(btVector3 const&)(*angVel);
	c_this->setAngularVelocity(c_arg_angVel);
}

void bullet_btSoftBody_setCacheBarycenter(btSoftBody* c_this,bool cacheBarycenter){
	bool c_arg_cacheBarycenter=cacheBarycenter;
	c_this->setCacheBarycenter(c_arg_cacheBarycenter);
}

void bullet_btSoftBody_setCollisionQuadrature(btSoftBody* c_this,int N){
	int c_arg_N=N;
	c_this->setCollisionQuadrature(c_arg_N);
}

void bullet_btSoftBody_setDampingCoefficient(btSoftBody* c_this,double damping_coeff){
	btScalar c_arg_damping_coeff=damping_coeff;
	c_this->setDampingCoefficient(c_arg_damping_coeff);
}

void bullet_btSoftBody_setGravityFactor(btSoftBody* c_this,double gravFactor){
	btScalar c_arg_gravFactor=gravFactor;
	c_this->setGravityFactor(c_arg_gravFactor);
}

void bullet_btSoftBody_setLinearVelocity(btSoftBody* c_this,btVector3* linVel){
	btVector3 const& c_arg_linVel=(btVector3 const&)(*linVel);
	c_this->setLinearVelocity(c_arg_linVel);
}

void bullet_btSoftBody_setMass(btSoftBody* c_this,int node,double mass){
	int c_arg_node=node;
	btScalar c_arg_mass=mass;
	c_this->setMass(c_arg_node,c_arg_mass);
}

void bullet_btSoftBody_setMaxStress(btSoftBody* c_this,double maxStress){
	btScalar c_arg_maxStress=maxStress;
	c_this->setMaxStress(c_arg_maxStress);
}

void bullet_btSoftBody_setPose(btSoftBody* c_this,bool bvolume,bool bframe){
	bool c_arg_bvolume=bvolume;
	bool c_arg_bframe=bframe;
	c_this->setPose(c_arg_bvolume,c_arg_bframe);
}

void bullet_btSoftBody_setRestLengthScale(btSoftBody* c_this,double restLength){
	btScalar c_arg_restLength=restLength;
	c_this->setRestLengthScale(c_arg_restLength);
}

void bullet_btSoftBody_setSelfCollision(btSoftBody* c_this,bool useSelfCollision){
	bool c_arg_useSelfCollision=useSelfCollision;
	c_this->setSelfCollision(c_arg_useSelfCollision);
}

void bullet_btSoftBody_setSoftBodySolver(btSoftBody* c_this,btSoftBodySolver* softBodySolver){
	btSoftBodySolver * c_arg_softBodySolver=(btSoftBodySolver *)(void*)(softBodySolver);
	c_this->setSoftBodySolver(c_arg_softBodySolver);
}

void bullet_btSoftBody_setSolver(btSoftBody* c_this,btSoftBody::eSolverPresets::_ preset){
	btSoftBody::eSolverPresets::_ c_arg_preset=preset;
	c_this->setSolver(c_arg_preset);
}

void bullet_btSoftBody_setSpringStiffness(btSoftBody* c_this,double k){
	btScalar c_arg_k=k;
	c_this->setSpringStiffness(c_arg_k);
}

void bullet_btSoftBody_setTotalDensity(btSoftBody* c_this,double density){
	btScalar c_arg_density=density;
	c_this->setTotalDensity(c_arg_density);
}

void bullet_btSoftBody_setVelocity(btSoftBody* c_this,btVector3* velocity){
	btVector3 const& c_arg_velocity=(btVector3 const&)(*velocity);
	c_this->setVelocity(c_arg_velocity);
}

void bullet_btSoftBody_setVolumeDensity(btSoftBody* c_this,double density){
	btScalar c_arg_density=density;
	c_this->setVolumeDensity(c_arg_density);
}

void bullet_btSoftBody_setVolumeMass(btSoftBody* c_this,double mass){
	btScalar c_arg_mass=mass;
	c_this->setVolumeMass(c_arg_mass);
}

void bullet_btSoftBody_setWindVelocity(btSoftBody* c_this,btVector3* velocity){
	btVector3 const& c_arg_velocity=(btVector3 const&)(*velocity);
	c_this->setWindVelocity(c_arg_velocity);
}

void bullet_btSoftBody_setZeroVelocity(btSoftBody* c_this){
	c_this->setZeroVelocity();
}

void bullet_btSoftBody_solveClusters(btSoftBody* c_this,double sor){
	btScalar c_arg_sor=sor;
	c_this->solveClusters(c_arg_sor);
}

void bullet_btSoftBody_solveCommonConstraints(btSoftBody* c_this,btSoftBody** bodies,int count,int iterations){
	btSoftBody * * c_arg_bodies=(btSoftBody * *)(void*)(bodies);
	int c_arg_count=count;
	int c_arg_iterations=iterations;
	c_this->solveCommonConstraints(c_arg_bodies,c_arg_count,c_arg_iterations);
}

void bullet_btSoftBody_solveConstraints(btSoftBody* c_this){
	c_this->solveConstraints();
}

void bullet_btSoftBody_staticSolve(btSoftBody* c_this,int iterations){
	int c_arg_iterations=iterations;
	c_this->staticSolve(c_arg_iterations);
}

void bullet_btSoftBody_updateArea(btSoftBody* c_this,bool averageArea){
	bool c_arg_averageArea=averageArea;
	c_this->updateArea(c_arg_averageArea);
}

void bullet_btSoftBody_updateBounds(btSoftBody* c_this){
	c_this->updateBounds();
}

void bullet_btSoftBody_updateClusters(btSoftBody* c_this){
	c_this->updateClusters();
}

void bullet_btSoftBody_updateConstants(btSoftBody* c_this){
	c_this->updateConstants();
}

void bullet_btSoftBody_updateDeactivation(btSoftBody* c_this,double timeStep){
	btScalar c_arg_timeStep=timeStep;
	c_this->updateDeactivation(c_arg_timeStep);
}

void bullet_btSoftBody_updateDeformation(btSoftBody* c_this){
	c_this->updateDeformation();
}

void bullet_btSoftBody_updateFaceTree(btSoftBody* c_this,bool use_velocity,bool margin){
	bool c_arg_use_velocity=use_velocity;
	bool c_arg_margin=margin;
	c_this->updateFaceTree(c_arg_use_velocity,c_arg_margin);
}

void bullet_btSoftBody_updateLinkConstants(btSoftBody* c_this){
	c_this->updateLinkConstants();
}

void bullet_btSoftBody_updateNode(btSoftBody* c_this,btDbvtNode* node,bool use_velocity,bool margin){
	btDbvtNode * c_arg_node=(btDbvtNode *)(void*)(node);
	bool c_arg_use_velocity=use_velocity;
	bool c_arg_margin=margin;
	c_this->updateNode(c_arg_node,c_arg_use_velocity,c_arg_margin);
}

void bullet_btSoftBody_updateNodeTree(btSoftBody* c_this,bool use_velocity,bool margin){
	bool c_arg_use_velocity=use_velocity;
	bool c_arg_margin=margin;
	c_this->updateNodeTree(c_arg_use_velocity,c_arg_margin);
}

void bullet_btSoftBody_updateNormals(btSoftBody* c_this){
	c_this->updateNormals();
}

void bullet_btSoftBody_updatePose(btSoftBody* c_this){
	c_this->updatePose();
}

bool bullet_btSoftBody_useSelfCollision(btSoftBody* c_this){
	bool c_out = c_this->useSelfCollision();
	bool wrap_out = (c_out);
	return wrap_out;
}

void bullet_btSoftBody_VSolve_Links(btSoftBody* c_this,btSoftBody* psb,double kst){
	btSoftBody * c_arg_psb=(btSoftBody *)(void*)(psb);
	btScalar c_arg_kst=kst;
	c_this->VSolve_Links(c_arg_psb,c_arg_kst);
}

bool bullet_btSoftBody_wantsSleeping(btSoftBody* c_this){
	bool c_out = c_this->wantsSleeping();
	bool wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
